////https://ac.nowcoder.com/acm/problem/51024
//
//#include<iostream>
//#include<queue>
//
//using namespace std;
//typedef pair<int, int> pint;
//const int N = 1010;
//char x[N][N];
//int ret[N][N];
//int n, m;
//int dx[] = { 0,0,1,-1 };
//int dy[] = { 1,-1,0,0 };
//
//void bfs()
//{
//    queue<pint> q;
//
//    for (int i = 0; i < n; i++)
//        for (int j = 0; j < m; j++)
//            if (x[i][j] == '1')
//                q.push({ i,j });
//
//    while (!q.empty())
//    {
//        auto t = q.front();
//        q.pop();
//        int a = t.first, b = t.second;
//        for (int i = 0; i < 4; i++)
//        {
//            int nx = a + dx[i], ny = b + dy[i];
//            if (nx < 0 || nx >= n || ny < 0 || ny >= m || ret[nx][ny] || x[nx][ny] == '1') continue;
//            ret[nx][ny] = ret[a][b] + 1;
//            q.push({ nx,ny });
//        }
//    }
//}
//
//int main()
//{
//    cin >> n >> m;
//    for (int i = 0; i < n; i++)
//        for (int j = 0; j < m; j++)
//            cin >> x[i][j];
//    bfs();
//    for (int i = 0; i < n; i++)
//    {
//        for (int j = 0; j < m; j++)
//            cout << ret[i][j] << " ";
//        cout << endl;
//    }
//    return 0;
//}